#!/usr/bin/python
# -*- coding:utf-8 -*-
# @author  : micah
# @time    :  
# @function: 
# @version :

# 如果一个变量不存在任何一个代码块之中则这个变量就是一个全局变量
# 可以被当前文件中的任意函数访问
num = 10  # 整型类型不能被修改


def test_1():
    # 如果不写上global，在函数代码中重新声明一个变量num，则不会修改全局变量
    global num
    num += 1


def test_2():
    print(num)


test_1()
test_2()

"""
两个函数都可以访问当前的这个全局变量
    并且如果一个函数修改了全局变量中的值。则第二个函数获取的值是修改后的
"""

int_list = [1, 2, 3, 4]


def test_3():
    # 如果当前全局变量的类型是一个可以被修改的对象，则可不用添加global
    int_list.append(5)


def test_4():
    print(int_list)


test_3()
test_4()


# 当前这种写法不推荐
def test_5(a: int, b: int) -> int:  # 定义返回值类型，但是没什么用
    if isinstance(a, int) and isinstance(b, int):
        return a + b


# 可以显式的写入参数的类型，但是调用时并不会进行类型检查
res = test_5(2, '6')
print(res)
